package leetcode.editor.cn;
//编写一个函数来查找字符串数组中的最长公共前缀。 
//
// 如果不存在公共前缀，返回空字符串 ""。 
//
// 示例 1: 
//
// 输入: ["flower","flow","flight"]
//输出: "fl"
// 
//
// 示例 2: 
//
// 输入: ["dog","racecar","car"]
//输出: ""
//解释: 输入不存在公共前缀。
// 
//
// 说明: 
//
// 所有输入只包含小写字母 a-z 。 
// Related Topics 字符串 
// 👍 1280 👎 0

/**
 * Java：最长公共前缀
 *
 * @author：紫水木鱼
 * @createDate：2020-09-24 14:48:32
 */
class P14LongestCommonPrefix {
    public static void main(String[] args) {
        Solution solution = new P14LongestCommonPrefix().new Solution();
//        String[] strs = {"lower", "flow", "flight"};
        String[] strs = new String[0];
        System.out.println("结果是:" + solution.longestCommonPrefix(strs));
        // TO TEST  https://blog.csdn.net/weixin_37850160/article/details/86556879
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public String longestCommonPrefix(String[] strs) {
            //方法一 开始 判断数组中的每一个元素是否以prefix开头,不是的话,让prefix-1,
            //在判断是否与数组中的元素相同.
            if (strs.length <= 0 || strs == null) {
                return "";
            }
            String prefix = strs[0];
            for (int i = 0; i < strs.length; i++) {
                while (!strs[i].startsWith(prefix)) {
                    prefix = prefix.substring(0, prefix.length() - 1);
                    if (prefix.isEmpty()) {

                        return "";
                    }
                }
            }
            return prefix;

            //方法一 结束
            //方法二 开始
//            if (strs.length <= 0||strs==null) {
//                return "";
//            }
//            StringBuilder sb = new StringBuilder();
//            for (int i = 0; i < strs[0].length(); i++) {
//                char c = strs[0].charAt(i);
//                for (int j = 1; j < strs.length; j++) {
//                    if (strs[j].length() == i || strs[j].charAt(i) != c) {
//                        return sb.toString();
//                    }
//                    if (strs[j].charAt(i) == c && j == strs.length - 1) {
//                        sb.append(c);
//                    }
//                }
//
//
//            }
//            return null;
            //方法二 结束
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}